﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using Padelcenter.Common;
using Padelcenter.DataAccess;

namespace Padelcenter.BusinessLogic.Get
{
    public class GetMetodoPagoDescripcion : IBusinessLogic
    {
        public GetMetodoPagoDescripcion() { }

        public void Invoke()
        {
            MetodoPagoDescripcion_Select oMetodoPagoDescripcionSelect = new MetodoPagoDescripcion_Select();
            oMetodoPagoDescripcionSelect.MetodoPagoDescripcion = this.MetodoPagoDescripcion;
            this.Resultset = oMetodoPagoDescripcionSelect.Get();
        }

        public List<MetodoPagoDescripcion> MetodoPagoDescripcionList()
        {
            this.Invoke();

            List<MetodoPagoDescripcion> listaMetodoPagoDescripcion = new List<MetodoPagoDescripcion>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                MetodoPagoDescripcion oMetodoPagoDescripcion;
                foreach (DataRow r in dTable.Rows)
                {
                    oMetodoPagoDescripcion = new MetodoPagoDescripcion();

                    MetodoPago oMetodoPago = new MetodoPago();
                    oMetodoPago.IdMetodoPago = Convert.ToInt32(r["idMetodoPago"]);

                    GetMetodoPago oGetMetodoPago = new GetMetodoPago();
                    oGetMetodoPago.MetodoPago = oMetodoPago;

                    oMetodoPagoDescripcion.MetodoPago = oGetMetodoPago.MetodoPagoList()[0];

                    Idioma oIdioma = new Idioma();
                    oIdioma.IdIdioma = Convert.ToInt32(r["idIdioma"]);

                    GetIdioma oGetIdioma = new GetIdioma();
                    oGetIdioma.Idioma = oIdioma;

                    oMetodoPagoDescripcion.Idioma = oGetIdioma.IdiomaList()[0];

                    oMetodoPagoDescripcion.Descripcion = r["Descripcion"].ToString();

                    listaMetodoPagoDescripcion.Add(oMetodoPagoDescripcion);
                }
            }

            return listaMetodoPagoDescripcion;
        }

        private DataSet _resultset;
        private MetodoPagoDescripcion _metodoPagoDescripcion;

        public MetodoPagoDescripcion MetodoPagoDescripcion
        {
            get { return _metodoPagoDescripcion; }
            set { _metodoPagoDescripcion = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
    public class GetMetodoPago : IBusinessLogic
    {
        public GetMetodoPago() { }

        public void Invoke()
        {
            MetodoPago_Select oMetodoPagoSelect = new MetodoPago_Select();
            oMetodoPagoSelect.MetodoPago = this.MetodoPago;
            this.Resultset = oMetodoPagoSelect.Get();
        }

        public List<MetodoPago> MetodoPagoList()
        {
            this.Invoke();

            List<MetodoPago> listaMetodoPago = new List<MetodoPago>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                MetodoPago oMetodoPago;
                foreach (DataRow r in dTable.Rows)
                {
                    oMetodoPago = new MetodoPago();
                    oMetodoPago.IdMetodoPago = Convert.ToInt32(r["idMetodoPago"]);
                    oMetodoPago.Descripcion = r["Descripcion"].ToString();
                    oMetodoPago.Activo = Convert.ToBoolean(r["Activo"]);
                    oMetodoPago.EsTarjeta = Convert.ToBoolean(r["EsTarjeta"]);

                    listaMetodoPago.Add(oMetodoPago);
                }
            }

            return listaMetodoPago;
        }

        private DataSet _resultset;
        private MetodoPago _metodoPago;

        public MetodoPago MetodoPago
        {
            get { return _metodoPago; }
            set { _metodoPago = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
    public class GetMetodoPagoZona : IBusinessLogic
    {
        public GetMetodoPagoZona() { }

        public void Invoke()
        {
            MetodoPagoZona_Select oMetodoPagoZonaSelect = new MetodoPagoZona_Select();
            oMetodoPagoZonaSelect.MetodoPagoZona = this.MetodoPagoZona;
            this.Resultset = oMetodoPagoZonaSelect.Get();
        }

        public List<MetodoPagoZona> MetodoPagoZonaList()
        {
            this.Invoke();

            List<MetodoPagoZona> listaMetodoPagoZona = new List<MetodoPagoZona>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                MetodoPagoZona oMetodoPagoZona;
                foreach (DataRow r in dTable.Rows)
                {
                    oMetodoPagoZona = new MetodoPagoZona();

                    MetodoPago oMetodoPago = new MetodoPago();
                    oMetodoPago.IdMetodoPago = Convert.ToInt32(r["idMetodoPago"]);

                    GetMetodoPago oGetMetodoPago = new GetMetodoPago();
                    oGetMetodoPago.MetodoPago = oMetodoPago;

                    oMetodoPagoZona.MetodoPago = oGetMetodoPago.MetodoPagoList()[0];

                    Zona oZona = new Zona();
                    oZona.IdZona = Convert.ToInt32(r["idZona"]);

                    GetZona oGetZona = new GetZona();
                    oGetZona.Zona = oZona;

                    oMetodoPagoZona.Zona = oGetZona.ZonaList()[0];

                    oMetodoPagoZona.Activo = Convert.ToBoolean(r["Activo"]);
                    
                    listaMetodoPagoZona.Add(oMetodoPagoZona);
                }
            }

            return listaMetodoPagoZona;
        }

        private DataSet _resultset;
        private MetodoPagoZona _metodoPagoZona;

        public MetodoPagoZona MetodoPagoZona
        {
            get { return _metodoPagoZona; }
            set { _metodoPagoZona = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
}
